<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <canvas id="text" width="500" height="500"></canvas>
  <script>
    const canvas = document.querySelector('#text')
    const ctx = canvas.getContext('2d')
    /**
     * ctx.fillText(text, x, y, maxWidth)   // 绘制实心文字
     * ctx.strokeText(text, x, y, maxWidth) // 绘制空心文字
     * text: 要绘制的文本
     * x: 绘制的x坐标
     * y: 绘制的y坐标
     * maxWidth: 可选，允许的最大文本宽度，如果文本过长就会压缩展示
     */

    // 设置字体样式
    ctx.font = "40px 楷书"
    // 设置字体填充颜色
    ctx.fillStyle = 'gold'
    // 绘制填充文字
    ctx.fillText('hello canvas!!!', 100, 100, 300)

    // 绘制描边文字
    ctx.strokeStyle = 'red'
    ctx.strokeText('你好，canvas！！', 100, 200, 300)

    // 绘制渐变文字
    // 1. 创建渐变对象
    const gradient = ctx.createLinearGradient(0, 0, canvas.width, 0)
    // 2. 设置渐变颜色
    gradient.addColorStop('0', 'orange')
    gradient.addColorStop('0.25', 'purple')
    gradient.addColorStop('0.5', 'red')
    gradient.addColorStop('0.75', 'blue')
    gradient.addColorStop('1', 'green')
    // 3. 应用渐变
    ctx.fillStyle = gradient
    ctx.strokeStyle = gradient
    // 4. 绘制渐变文字
    ctx.fillText('hello gradient', 100, 300, 300)
    ctx.strokeText('hello gradient', 100, 400, 300)
  </script>
</body>

</html>